//package com.rentong.wx.cust.controller;
//
//import com.rentong.wx.utils.WaterMarkUtils;
//import com.rentong.wx.utils.cos.COSClient;
//import com.rentong.wx.utils.cos.ClientConfig;
//import com.rentong.wx.utils.cos.auth.BasicCOSCredentials;
//import com.rentong.wx.utils.cos.auth.COSCredentials;
//import com.rentong.wx.utils.cos.model.PutObjectRequest;
//import com.rentong.wx.utils.cos.model.PutObjectResult;
//import com.rentong.wx.utils.cos.region.Region;
//import com.rentong.basic.BusinessException;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.multipart.MultipartFile;
//import java.io.File;
//import java.io.IOException;
//import java.net.URL;
//import java.text.SimpleDateFormat;
//import java.util.Date;
//
//@Slf4j
//@RestController
//public class FileController {
//
//    // API密钥
//    private static final String SECRET_ID = "AKIDDPYbT9bcWovtgHgtNejaQAoGUm7YwBFB";
//    private static final String SECRET_KEY = "uiafsDVq9a5TwKf4b2Igx1ya3rcN4igZ";
//    // 桶名称
//    private static final String BUCKETNAME = "sfjf2-1326854698";
//    // 地域
//    private static final String REGIONID = "ap-shanghai";
//    // 文件夹
//    private String FOLDER = "";
//
//
//    @RequestMapping("/wx/upload/uploadPicCos")
//    public String videoUpload(@RequestParam("uploadFile") MultipartFile uploadFile, String fileName) {
//        if (uploadFile == null) {
//            throw new BusinessException("上传文件为空！");
//        }
//
//        String url = "";
//        // 1 初始化用户身份信息(secretId, secretKey)
//        COSCredentials cred = new BasicCOSCredentials(SECRET_ID, SECRET_KEY);
//        // 2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
//        // clientConfig中包含了设置region, https(默认http), 超时, 代理等set方法, 使用可参见源码或者接口文档FAQ中说明
//        ClientConfig clientConfig = new ClientConfig(new Region(REGIONID));
//        // 3 生成cos客户端
//        COSClient cosClient = new COSClient(cred, clientConfig);
//        //这里修改一下文件名字
//        String oldFileName = uploadFile.getOriginalFilename();
//        String eName = oldFileName.substring(oldFileName.lastIndexOf("."));
//        Date date = new Date();
//        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
//        String time = formatter.format(date);
//        //新名字
//        String newFileName = time + eName;
//        // 简单文件上传, 最大支持 5 GB, 适用于小文件上传
//        // 大文件上传请参照 API 文档高级 API 上传
//        File localFile = null;
//        try {
//            localFile = File.createTempFile("temp", null);
//            uploadFile.transferTo(localFile);
//
//
//            //上传图片的路径
//            FOLDER = "manage/" + fileName + "/";
//
//
//            // 指定要上传到 COS 上的路径
//            String KEY = FOLDER + newFileName;
//            PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKETNAME, KEY, localFile);
//            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
//
//            // putobjectResult会返回文件的etag
//            URL objectUrl = cosClient.getObjectUrl(BUCKETNAME, KEY);//线上地址URL
//            url = objectUrl.toString();
//
//            System.out.println(url);
//            return url;
//        } catch (IOException e) {
//            throw new BusinessException("上传出错！");
//        } finally {
//            // 关闭客户端(关闭后台线程)
//            cosClient.shutdown();
//        }
//    }
//
//
//    //带时间水印上传图片
//    @RequestMapping("/wx/upload/uploadPicCos2")
//    public String uploadPicCos2(@RequestParam("uploadFile") MultipartFile uploadFile, String fileName) {
//        if (uploadFile == null) {
//            throw new BusinessException("上传文件为空！");
//        }
//
//        try{
//            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//
//            //加水印
//            uploadFile = WaterMarkUtils.addWorkMarkToMutipartFile(uploadFile, simpleDateFormat.format(new Date()));
//
//        }catch (Exception e){
//            System.out.println("-----------添加水印失败！------------");
//        }
//
//        String url = "";
//        // 1 初始化用户身份信息(secretId, secretKey)
//        COSCredentials cred = new BasicCOSCredentials(SECRET_ID, SECRET_KEY);
//        // 2 设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
//        // clientConfig中包含了设置region, https(默认http), 超时, 代理等set方法, 使用可参见源码或者接口文档FAQ中说明
//        ClientConfig clientConfig = new ClientConfig(new Region(REGIONID));
//        // 3 生成cos客户端
//        COSClient cosClient = new COSClient(cred, clientConfig);
//        //这里修改一下文件名字
//        String oldFileName = uploadFile.getOriginalFilename();
//        String eName = oldFileName.substring(oldFileName.lastIndexOf("."));
//        Date date = new Date();
//        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
//        String time = formatter.format(date);
//        //新名字
//        String newFileName = time + eName;
//        // 简单文件上传, 最大支持 5 GB, 适用于小文件上传
//        // 大文件上传请参照 API 文档高级 API 上传
//        File localFile = null;
//        try {
//            localFile = File.createTempFile("temp", null);
//            uploadFile.transferTo(localFile);
//
//
//            //上传图片的路径
//            FOLDER = "manage/" + fileName + "/";
//
//
//            // 指定要上传到 COS 上的路径
//            String KEY = FOLDER + newFileName;
//            PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKETNAME, KEY, localFile);
//            PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
//
//            // putobjectResult会返回文件的etag
//            URL objectUrl = cosClient.getObjectUrl(BUCKETNAME, KEY);//线上地址URL
//            url = objectUrl.toString();
//
//            System.out.println(url);
//            return url;
//        } catch (IOException e) {
//            throw new BusinessException("上传出错！");
//        } finally {
//            // 关闭客户端(关闭后台线程)
//            cosClient.shutdown();
//        }
//    }
//
//
//
//}
